// Atributos
attribute highp vec4 vertices;
attribute highp vec3 normals;
attribute lowp vec2 texuv;

// Variables uniformes
uniform mediump mat4 projectMatrix;
uniform mediump mat4 viewMatrix;
uniform highp mat4 modelMatrix;
uniform mediump mat3 normalMatrix;
uniform vec3 LightPosition;

// Valores de salida
varying vec3 vNormal;
varying lowp vec2 UV;
varying highp vec3 Pos_ws;
varying vec3 EyeDir_cs;
varying vec3 LightDir_cs;

void main (void)
{
	vec4 auxNormal;

	gl_Position= projectMatrix*viewMatrix*modelMatrix*vertices;

	vNormal= normalMatrix * normals;
	Pos_ws= vec3(modelMatrix * vec4(vertices));
	UV= texuv;

	// Vector desde el vertice a la camara, en espacio camara
	vec3 Pos_cs= vec3(viewMatrix*modelMatrix*vertices);
	EyeDir_cs= vec3(0.0, 0.0, 0.0) - Pos_cs;

	// Vector que va desde el vertice hasta la luz, en es pacio camara
	vec3 LightPos_cs= vec3(viewMatrix * vec4(LightPosition, 1.0));
	LightDir_cs= LightPos_cs + EyeDir_cs;
}
